#ifndef GUI_THEME
#define GUI_THEME

#include "button.h"
#include "checkbox.h"
#include "editbox.h"
#include "font.h"
#include "picture.h"
#include "progressbar.h"
#include "statictext.h"
#include "window.h"

#include "../texture/draw.h"
#include "../mesh/material.h"

namespace sleek
{
    namespace gui
    {
        class theme
        {
            public:
                theme(core::engine::interface*);
                ~theme();

                virtual void drawFont(frame*);

                virtual void drawWindowMain(window*);
                virtual void drawWindowMainHovored(window*);
                virtual void drawWindowMainMoved(window*);

                virtual void drawWindowDecoration(window*);
                virtual void drawWindowDecorationHovored(window*);
                virtual void drawWindowDecorationMoved(window*);

                virtual void drawWindowTitle(window*);
                virtual void drawWindowTitleHovored(window*);
                virtual void drawWindowTitleMoved(window*);

                virtual void drawButton(button*);
                virtual void drawButtonPushed(button*);
                virtual void drawButtonHovored(button*);
                virtual void drawCheckBox(checkbox*);
                virtual void drawStaticText(statictext*);
                virtual void drawProgressbar(progressbar*);
                virtual void drawFrame(frame*);
            protected:
                texture::texture *decor[IGT_COUNT*3];
                core::engine::interface *mom;
                mesh::material solid, line;
        };
    }
}

#endif
